package abolatw.phprpc.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * PHPRPC 的懶人Annotation 
 * 
 * @author abola
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface PHPRPC {
	/**
	 * 類似 Servlet 3.0 的設定，要交給Filter 去偵測的 url 位址
	 */
	String urlPattern();
	
	/**
	 * 設定要發佈的method name, defaults 不設定為全部發佈
	 * PHPRPC_Server.add(String)
	 */
	String[] add() default {};
	
	/**
	 * 設定要發佈的method type, 預設為發佈 static + instance method
	 * @return
	 */
	PHPRPC_MethodType methodType() default PHPRPC_MethodType.BOTH;
}
